<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Recorrido_atractivo_lst( $this );

	class Recorrido_atractivo_lst extends Lst
	{
	function Recorrido_atractivo_lst( &$oModule )
		{
			$this->Lst( $oModule );
			$this->setTitle ( "Recorridos - Atractivos" );
			$this->oPaging->setOrderBy('nOrden, cReferencia', true);
			//$this->oPaging->setNoPaging();
			$this->setSummary( "Esta tabla contiene los Atractivos de los Recorridos" );
		}
	function setLevel()
		{
			$this->aShowColumns = array_keys ( $this->aColumns );
			switch ( $this->getOptionView() )
			{
				case 'E':
					$this->aShowColumns = array( 'Recorrido','Atractivo' );
					break;
				case 'L':
					$this->aShowColumns = array( 'bEstrella', 'ncRotulo', 'Recorrido','Orden','Atractivo');
					break;
			}
			if ( array_key_exists( 'ncAtractivo' , $this->aFields )  ) unset($this->aShowColumns[array_search( 'Atractivo',$this->aShowColumns)]);
			if ( array_key_exists( 'ncRecorrido' , $this->aFields )  ) unset($this->aShowColumns[array_search( 'Recorrido',$this->aShowColumns)]);
		}
	function initialize()
		{
			$this->oFiltro = $this->oModule->loadClass( 'recorrido_atractivo_frm' );
			$this->aFields = array_merge ( (array)$this->aFields,  (array)$this->oFiltro->getFieldArray() );
			
			if ( ! $this->aFields["ncRecorrido"] ) $this->addColumn ( 'Recorrido', '' );
			$this->addColumn ( 'Recorrido', '' );
			$this->setColumnAction ( 'Recorrido', VER_RECORRIDO, 'ncRecorrido' );
			$this->addColumnMultiLanguage ( 'Descripcion', 'cDescripcion' );
			$this->addColumn ( 'Orden', '' );
			$this->addColumn ( 'Referencia', 'cReferencia' );
			$this->setColumnAction ( 'Orden', VER_ATRACTIVO_DE_UN_RECORRIDO, 'ncRecorrido,ncAtractivo,ncOrden' );
			$this->setColumnAction ( 'Referencia', VER_ATRACTIVO_DE_UN_RECORRIDO, 'ncRecorrido,ncAtractivo,ncOrden' );
			$this->addColumn ( 'Domicilio', '' );
			$this->addColumn ( 'Ubicacion', '' );
			$this->addColumnStar ( 'bEstrella', MODIFICAR_ESTRELLA_ATRACTIVO, 'ncAtractivo', 'bEstrella' );
			$this->addColumnTag( 'ncRotulo', ACTUALIZAR_TAG_ATRACTIVO, 'ncAtractivo', 'gtAtractivoRotulo', $this->oDatabase->getKeyArray('SELECT ncRotulo, cdRotulo FROM gtRotuloAtractivo' ) );			
			$this->addColumn ( 'Atractivo', '' );
			$this->setColumnAction ( 'Atractivo', VER_ATRACTIVO, 'ncAtractivo' );
			$this->addColumn ('Codigo Establecimiento','ncEstablecimiento');
			$this->setColumnAction ( 'Codigo Establecimiento', VER_ESTABLECIMIENTO, 'ncEstablecimiento' );
			$this->addColumnMultiLanguage ( 'Titulo', 'cTitulo' );
			$this->addColumnMultiLanguage ( 'Tipo', 'cdTipoAtractivo' );
			$this->oModAdministracion =& loadModule("administracion");
			$this->oModAdministracion->setSubModule("entidades");
		}
	function makeColumn ( $aRow, $cField )
	{
		switch( $cField )
		{
			case 'Domicilio':
				$aRow['ncDomicilio'] = $this->oDatabase->getData(  "SELECT ncDomicilio FROM gtEstablecimiento WHERE ncEstablecimiento = " . $aRow["ncEstablecimiento"] );
				$aRow['oDomicilio'] = $this->oModAdministracion->loadClass('domicilio_frm');
				$cReturn =$aRow['ncDomicilio'] ? $aRow['oDomicilio']->getDescription($aRow['ncDomicilio']) : '';
				break;
			case 'Recorrido':
					$cReturn = extractLanguage($aRow['cdCategoriaRecorrido'], 'es') . ': ' . extractLanguage($aRow['cdRecorrido'], 'es') ;
                    break;
			case 'Ubicacion':
					$cReturn =$aRow['oDomicilio']->getUbicacion();
                    break;
			case 'Orden':
					$cReturn =$aRow['nOrden'] . '.' . $aRow['cReferencia'] ;
                    break;
			case 'Atractivo':
					$cReturn = trim(extractLanguage($aRow['cTitulo'] , 'es')) != ''  ? extractLanguage($aRow['cTitulo'] , 'es'):  extractLanguage($aRow['cdAtractivo'], 'es') ;
                    break;
			default:
					return false;
				break;
		}
		return $cReturn;
	}
	function query()
		{
			// Arma el Query
				$cSql = "SELECT Rec.ncRecorrido, TAt.cdTipoAtractivo, Atr.ncAtractivo, Rec.cdRecorrido, Atr.cdAtractivo, cReferencia, RAt.nOrden, cdCategoriaRecorrido, RAt.cDescripcion, RAt.ncOrden, RAt.cTitulo, Atr.ncEstablecimiento
							FROM gtRecorrido as Rec
							JOIN gtRecorridoAtractivo as RAt
								ON Rec.ncRecorrido = RAt.ncRecorrido
							JOIN gtAtractivo as Atr
								ON Atr.ncAtractivo= RAt.ncAtractivo
							LEFT JOIN gcTipoAtractivo as TAt
								ON TAt.ncTipoAtractivo  = Atr.ncTipoAtractivo
							JOIN gcCategoriaRecorrido as CRe
								ON CRe.ncCategoriaRecorrido = Rec.ncCategoriaRecorrido";
				if ( $ncUbicacion ) $cSql .= " JOIN gtEstablecimiento as Est ON Est.ncEstablecimiento = Atr.ncEstablecimiento JOIN atDomicilio as Dom ON Est.ncDomicilio = Dom.ncDomicilio AND Dom.ncUbicacion = $ncUbicacion ";
			// Arma el Filtro de la Consulta
				$this->oFiltro->setDefaultSearchField( "concat( cTitulo, ' ' ,cdAtractivo)" );
				$this->oWhere->addArray ( $this->oFiltro->getFilterdArray('RAt') );
				$this->oWhere->add( "cdRecorrido", $cdRecorrido );
				$this->oWhere->add( "cdAtractivo", $cdAtractivo );
			$nqReg = $this->oDatabase->total($cSql);
			if ( $nqReg < 50 ) $this->oPaging->setNoPaging();
			return $cSql . $this->oWhere->make();
		}
	function makeListActions()
		{
			//$this->oModule->setBack();
			$cParametroRegistro =  $this->getFieldString();
			$this->addListAction ( AGREGAR_ATRACTIVO_DE_UN_RECORRIDO , $cParametroRegistro, 'I' ,  VENTANA_SECUNDARIA);
		}
	function makeRowActions( $aRow )
		{
			$cParametroRegistro =  "ncRecorrido=" . $aRow["ncRecorrido"] . "&amp;ncAtractivo=" . $aRow["ncAtractivo"]. "&amp;ncOrden=" . $aRow["ncOrden"];
			$nqFoto = $this->oDatabase->getData("SELECT count(*) FROM gtAtractivoFoto WHERE ncAtractivo = " . $aRow["ncAtractivo"]);
			if ( $nqFoto == 0 ) $this->addRowAction ( AGREGAR_ATRACTIVO_FOTO , $cParametroRegistro . "&amp;cTitulo=" .str_replace('"','', extractLanguage($aRow["cdAtractivo"], 'es')), '', DIV_POPUP );
			else $this->addRowAction ( CONSULTAR_ATRACTIVO_FOTO , $cParametroRegistro );
			$this->addRowAction ( MODIFICAR_ATRACTIVO_DE_UN_RECORRIDO , $cParametroRegistro, '', VENTANA_SECUNDARIA );
			$this->addRowAction ( ELIMINAR_ATRACTIVO_DE_UN_RECORRIDO , $cParametroRegistro);
			//$this->addRowAction ( MODIFICAR_ATRACTIVO_DE_UN_RECORRIDO , $cParametroRegistro, '', DIV_POPUP );
		}
	}
?>